开始新对话

未解决

此帖子已超过 5 年

3282

2012年10月9日 23:00

Linux/AIX系统实用监控命令详解

​ ​
​ ​

​Linux/AIX​​系统实用监控命令详解​

​ ​
​ ​

​ ​

​转载请在文首保留原文出处:​​EMC​​中文支持论坛​

​ ​
​ ​

​介绍​

​ ​
​ ​

​ ​

​Linux/UNIX​​系统提供了一些有用的监控命令如:​​iostat​​,​​vmstat​​,​​ps​​,​​sar​​,通过它们系统管理员可以方便地监测系统资源是否平衡并解决性能问题。本文阐述了这些命令的使用方法,并以​​AIX​​系统为例附加应用实例。为​​Linux/AIX​​系统管理员提供参考。​

​ ​
​ ​

​更多信息​

​ ​
​ ​

​ ​

​iostat​

​ ​

​ ​

​iostat​​命令主要通过物理磁盘的活跃时间及它们的平均传输速度,监控系统输入​​/​​输出设备负载。根据​​iostat​​命令产生的报告,用户可确定一个系统配置是否平衡,并据此在物理磁盘与适配器之间更好的平衡输入​​/​​输出负载,从而在用户注意到服务器运行缓慢之前提早发现输入​​/​​输出缓慢的问题。​

​ ​

​iostat​​工具的主要目的是通过监控磁盘的利用率(​​tm_act​​字段),检测系统的​​I/O​​瓶颈。此外,还可用于确定​​CPU​​问题,辅助容量规划。​​vmstat​​和​​iostat​​联合使用,可获得与​​CPU​​,内存和​​I/O​​子系统有关的性能问题的必需数据。​

​ ​

​下图是​​AIX​​系统​​iostat​​命令输出:​

​ ​

iostat.jpg

​ ​

​ ​

​iostat​​命令可产生如下四种类型的报告:​

​ ​

​·​​ ​​tty​​和​​CPU​​利用情况​

​ ​

​·​​ ​​磁盘利用情况​

​ ​

​·​​ ​​系统吞吐率​

​ ​

​·​​ ​​适配器吞吐率​

​ ​

​% tm_act​​:​​物理磁盘活动的时间百分比​

​ ​

​Kbps​​:​​某块磁盘传输数据的总量​​(​​读或写​​)​

​ ​

​tps​​:某块物理磁盘每秒钟​​ IO ​​传输的数量​

​ ​

​Kb_read​​:​​从磁盘上读取数据的总量​

​ ​

​Kb_wrtn​​:写入磁盘的数据总量​

​ ​

​ ​

​vmstat​

​ ​

​vmstat​​命令报告关于核心线程,虚拟内存,自陷(​​trap​​),磁盘以及​​CPU​​行为的统计。而且每种行为报告都被更细致地用百分比分别表示用户态、核态、空闲以及等待磁盘​​I/O​​等情况。 内核维持了对核心线程,换页以及中断行为的统计数据,而​​vmstat​​命令则通过使用​​knlist​​子程序和​​/dev/kmen​​伪设备驱动器访问这些数据。磁盘的输入​​/​​输出统计是通过设备驱动器维持的。对于磁盘,平均传输速度是通过使用活跃时间核传输信息数目决定的。而活跃时间百分比则是从报告期间驱动器忙的时间量计算出来的。 ​

​ ​

​下图是​​AIX​​系统​​vmstat​​命令输出​​:​

​ ​

vmstat.jpg

​ ​

​ ​

​vmstat​​命令产生五种类型的报告: ​

​ ​

​·​​ ​​虚存行为报告 ​

​ ​

​·​​ ​​fork​​子进程情况报告 ​

​ ​

​·​​ ​​每个设备产生的中断情况报告 ​

​ ​

​·​​ ​​汇总报告 ​

​ ​

​·​​ ​​输入​​/​​输出行为报告​

​ ​

​page:​​页面调入调出的数量​

​ ​

​wa​​:​​等待​​I/O​​的时间​

​ ​

​avm​​:​​活动虚拟页面​​,​​在进程运行中分配到工作段的页面空间数,单位为​​4K​
​fre:​
​空闲列表的数量​​.​​一般不少于​​120,​​当​​fre​​少于​​120​​时​​,​​系统开始自动的​​kill​​进程去释放​​free list ​

​ ​

​ ​

​PS​

​ ​

​ps​​命令是​​UNIX​​系统中最常见的命令,它主要显示系统中关于进程的统计和状态信息,如进程​​ID​​,​​I/O​​行为以及​​CPU​​利用率等。利用​​ps​​命令提供的信息,可决定一个进程运行了多长时间,进程使用了多少​​CPU​​时间,以及进程是否受系统的惩罚。还可用​​ps​​命令确定进程使用了多少内存,完成多少​​I/O​​,进程的优先级以及是谁创建了进程。下面这几个命令组合对于管理​​AIX​​系统有帮助: ​

​ ​

​(​​1​​)显示​​10​​个消耗​​CPU​​最多的进程:​​ # ps aux |head -1 ;ps aux |sort -rn +2 |head -10 ​

​ ​

​(​​2​​)显示​​10​​个消耗存储空间最多的进程:​​ # ps aux |head -1 ;ps aux |sort -rn +3 |head -10 ​

​ ​

​(​​3​​)按顺序显示系统中受罚的进程:​​ #ps -eakl |head -1 ;ps -eakl |sort -rn +5​

​ ​

​(​​4​​)按优先级顺序显示系统中的进程:​​ #ps -eakl |sort -n +6 |head ​

​ ​

​(​​5​​)按处理时间为顺序显示系统中的前十个进程:​​ #ps vx |head -1 ;ps vx |grep -v PID |sort -rn +3 |head -10 ​

​ ​

​(​​6​​)按实际内存使用的多少顺序显示系统中的前十个进程:​​ #ps vx |head -1 ;ps vx |grep -v PID |sort -rn +6 |head -10 ​

​ ​

​(​​7​​)按换入页面的多少顺序显示系统中的前​​10​​个进程:​​ #ps vx |head -1 ;ps vx |grep -v PID |sort -rn +4 |head -10​

​ ​

​下图是​​AIX​​系统​​ps​​命令输出​​:​

​ ​

ps.jpg

​ ​

​ ​

​ ​

​sar ​

​ ​

​sar​​命令报告​​CPU​​的使用情况,​​I/O​​以及其它系统行为。​​sar​​命令可以收集,报告以及保存系统行为信息。如果没有指定输入文件,则​​sar​​调用​​sarc​​命令访问系统数据。 用户可用让​​cron​​命令运行两个​​shell​​脚本(​​/usr/lib/sa/sa1​​和​​/usr/lib/sa2​​)以提供日统计和报表。在​​crontab​​文件​​/var/spool/cron/crontabs/adm​​中包括了一些样本节,用于示范​​cron​​要在何时运行这些​​shell​​脚本。以这种方式收集到的数据对于确定系统的时间周期特征和决定峰值使用时间是有用的。但要注意的是,​​sar​​命令自己运行时会产生相当数量的读写。因此最好在没有工作量的情况下运行​​sar​​统计,看看​​sar​​对总的统计数字有多大的影响。 ​

​ ​

sar1.jpg

​ ​

​ ​

​显示内容包括: ​

​ ​

​%usr​​:​​CPU​​处在用户模式下的时间百分比​
​%sys​​:​​CPU​​处在系统模式下的时间百分比​
​%wio​​:​​CPU​​等待输入输出完成时间的百分比​
​%idle​​:​​CPU​​空闲时间百分比​

​ ​

​physc​​:消耗物理处理器的数目,只在共享处理器或启用同时多线程的分区上报告​

​ ​

​在所有的显示中,我们应主要注意​​%wio​​和​​%idle​​,​​%wio​​的值过高,表示硬盘存在​​I/O​​瓶颈,​​%idle​​值高,表示​​CPU​​较空闲,如果​​%idle​​值高但系统响应慢时,有可能是​​CPU​​等待分配内存,此时应加大内存容量。​​%idle​​值如果持续低于​​10​​,那么系统的​​CPU​​处理能力相对较低,表明系统中最需要解决的资源是​​CPU​​。 ​

​ ​
​ ​

​参考​

​ ​
​ ​

​ ​

​Linux/AIX​​命令参考手册​

​ ​
​ ​

​应用于​

​ ​
​ ​

​ ​

​Linux​​,​​AIX​​系统​

​ ​

​ ​

1.6K 消息

2012年10月10日 00:00

女侠又出手啦,呵呵

1.2K 消息

2012年10月10日 00:00

呵呵,一转眼闭关修炼一个月了~

16 消息

2012年10月10日 22:00

不错,学习了!!

17 消息

2014年5月19日 23:00

jiawen,如果能加一个,建议的值就最好了。比如tm_act,一般正常的情况下,这个值是多少?如果磁盘瓶颈的时候,这个值在什么位置?诸如。谢谢。

1.2K 消息

2014年5月20日 02:00

谢谢,很中肯的建议。通常tm_act在超过60%到70%时,表示进程开始等待IO,也就是进入了瓶颈。

找不到事件!

Top